Exploiting Implicit Parallelism in Dynamic Array Programming
نویسندگان
چکیده
We have built an interpreter for the array programming language J. The interpreter exploits implicit data parallelism in the language to achieve good parallel speedups on a variety of benchmark applications. Many array programming languages operate on entire arrays without the need to write loops. Writing without loops simplifies the programs. Array programs without loops allow an interpreter to parallelize the execution of the code without complex analysis or input from the programmer. The J programming language includes the usual idioms of operations on arrays of the same size and shape, where the operations can often be performed in parallel for each individual item of the operands. Another opportunity comes from Js reduction operations, where suitable operations can be performed in parallel for all the items of an operand. J has a notion of verb rank, which allows programmers to simplify programs by declaring how operations are applied to operands. The verb rank mechanism allows us to extract further parallelism. Our implementation of an implicitly parallelizing interpreter for J is written entirely in Java. We have written the interpreter in a framework that produces native code for the interpreter, giving good scalar performance. The interpreter itself is responsible for exploiting the parallelism available in the applications. Our results show we attain good parallel speed-up on a variety of benchmarks, including near perfect linear speed-up on inherently parallel benchmarks. We believe that the lessons learned from our approach to exploiting data parallelism in an interpreter can be applied to other interpreted languages as well.
منابع مشابه
The SBA: Exploiting Orthogonality in AND-OR Parallel Systems
One of the advantages of logic programming is the fact that one can exploit implicit parallelism in logic programs, such as and-parallelism and or-parallelism. Recently, research has been concentrated on integrating the diierent forms of parallelism into a single combined system. In this work we concentrate on the problem of integrating or-parallelism and independent and-parallelism for paralle...
متن کاملA Dynamic Dataflow Architecture using Partial Reconfigurable Hardware as an option for Multiple Cores
Different from traditional processors, Moore ́s Law was one of the reasons to duplicate cores, and at least until today it is the solution for safe consumption and operation of systems using millions of transistors. In terms of software, parallelism will be a tendency over the coming years. One of the challenges is to create tools for programmers who use HLL (High Level Language) producing hardw...
متن کاملMultigame — A Very High Level Language for Describing Board Games
Languages with implicit parallelism are easier to program in than those with explicit parallelism, but finding and efficiently exploiting parallelism in general-purpose programming languages by parallelizing compilers is hard. A compiler for a Very High Level Language, designed for a specific application domain, has more knowledge about its application domain and may use this knowledge to gener...
متن کاملA Systematic Approach to Exploiting Implicit Parallelism in Full Prolog
Prolog is a practical declarative programming language based on Horn Logic. In this paper we argue that implicit parallelism can be extracted from full Prolog. By full Prolog we mean pure Prolog with extra-logical features such as side-eeects, database predicates and cuts. Prolog programs have three main forms of implicit parallelism present in them: or-parallelism, independent and-parallelism ...
متن کاملImplementing a Generic Systolic Array for Genetic Algorithms
Algorithms I. M. Bland Algorithm Engineering Research Group Dept. of Computer Science University of Reading Reading, UK. RG6 6AY [email protected] G. M. Megson Algorithm Engineering Research Group Dept. of Computer Science University of Reading Reading, UK. RG6 6AY [email protected] Abstract|We have designed a highly parallel design for a simple genetic algorithm using a pipeline o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014